// xkImgBit.h: interface for the xkImgBitMan class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_XKIMGBITMAN_H__83557D62_7F3C_40E9_8526_F84AC7698E2B__INCLUDED_)
#define AFX_XKIMGBITMAN_H__83557D62_7F3C_40E9_8526_F84AC7698E2B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DD_ImgCfg.h"

#define MAX_UNDO_LEVELS 10

class xhImagePro;
class xkImgBit  
{
public:
	xkImgBit()
	{
		m_pParent = NULL;
	}
	virtual ~xkImgBit()
	{
	}

public:
	virtual int Initialize() = 0;
	virtual int SetImgBit(zkImgBitInfo *pImgInfo) = 0;
	virtual int LoadFile(char *pFileName) = 0;
	virtual int SetImgBuffer(zkImgBitInfo *pImgInfo,BOOL bShareMem = TRUE) = 0;
	virtual int GetImageSize(int &nWidth,int &nHeight) = 0;
	virtual int Restore() = 0;
	virtual int Operate(DWORD dwProMode,void *pVoid = NULL) = 0;

public:
	virtual int GetGrayValue(int x,int y,DWORD &dwGray) = 0;
	virtual int GetLineGray(POINT tStart,POINT tEnd,zkImgLineGray **ppLineGray) = 0;
	virtual int GetGrayLevels(int &nGrayLevels) = 0;
	virtual int GetHistogramInfo(zkImgHistogram **ppHistogram) = 0;
	virtual int SaveFile(char *pFileName) = 0;

public:
	xhImagePro *m_pParent;

};

xkImgBit* CreateImgBit8();
xkImgBit* CreateImgBit16();


#endif // !defined(AFX_XKIMGBITMAN_H__83557D62_7F3C_40E9_8526_F84AC7698E2B__INCLUDED_)
